#!/usr/bin/env python
#coding=utf-8

from flask import Blueprint, session, request, url_for

from aladin.helpers import toint, log_debug, log_info, log_error, render_template,\
                            show_admin_error, show_admin_success

from app.models.sys import SysCategory
from app.services.sys import CategoryService

sys = Blueprint('sys', __name__)

@sys.route('/category/<int:cat_type>')
def category(cat_type=0):
    """类目"""
    cat_list = SysCategory.query.filter(SysCategory.cat_type == cat_type).all()

    return render_template('admin/sys/cat_list.html', cat_list=cat_list, cat_type=cat_type)


@sys.route('/category/add/<int:cat_type>', methods=['GET', 'POST'])
def category_add(cat_type=0):
    """类目添加"""
    if request.method == 'GET':
        parent_cat =  SysCategory.get_category_select(cat_type)
        return render_template('admin/sys/cat_info.html', f={}, errmsg={},
                    parent_cat=parent_cat, cat_type=cat_type)

    cs = CategoryService(request.form, 0, cat_type)
    errmsg = cs.save()
    if errmsg:
        parent_cat =  SysCategory.get_category_select(cat_type)
        return render_template('admin/sys/cat_info.html', f=request.form, errmsg=errmsg, 
                parent_cat=parent_cat, cat_type=cat_type)

    return show_admin_success(u'类目', u'添加类目成功', url_for('sys.category', cat_type=cat_type))


@sys.route('/category/edit/<int:cat_id>-<int:cat_type>', methods=['GET', 'POST'])
def category_edit(cat_id, cat_type=0):
    """类目编辑"""

    c = SysCategory.query.get_or_404(cat_id)
    if request.method == 'GET':
        parent_cat =  SysCategory.get_category_select(cat_type)
        return render_template('admin/sys/cat_info.html', f=c, errmsg={}, 
                parent_cat=parent_cat, cat_type=cat_type)

    cs = CategoryService(request.form, cat_id, cat_type)
    errmsg = cs.save()
    if errmsg:
        log_info('errmsg:%s' % errmsg)
        parent_cat =  SysCategory.get_category_select(cat_type)
        return render_template('admin/sys/cat_info.html', f=request.form, errmsg=errmsg, 
                parent_cat=parent_cat, cat_type=cat_type)

    log_debug('cat_id:%d, errmsg:%s' % (cat_id, errmsg))
    return show_admin_success(u'类目', u'更新类目成功', url_for('sys.category', cat_type=cat_type))


